<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests\LinkInsertRequest;
use App\Http\Model\Link;

class LinkController extends Controller
{
    /**
     * 友情链接的列表页.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        //
        $count=$request->input('count',5);

        $search=$request->input('search','');

        $keywords = $request->input('keywords','');

        $data=Link::where('link_name','like','%'.$search.'%')->paginate($count);

        return view('admin.link.index',['data'=>$data,'keywords'=>$keywords]);
    }

    /**
     * 展示友情链接的添加页面
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        return view('admin.link.create',['title'=>'添加友情链接']);
    }

    /**
     * 实现添加的动作.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(LinkInsertRequest $request)
    {
        //将所有的值放在闪存中
        // if(!$request->input('linkname')){
        //     //$request->flash();  //
        // }
        $data=$request->except('_token');
        // dd($data);
        //存闪存
        if(!$request->input('link_name') && !$request->input('address') && !$request->input('logo')){
            //快速的看是否没填值
            return back()->withInput('error','信息不全');
        }
        if($request->hasFile('logo')){
            //处理文件名称
            $temp_name = md5(time()+rand(1000,9999));
            //获取后缀
            $hz = $request -> file('logo')->getClientOriginalExtension();
            
            //文件路径
            $temp_path = './uploads'.date('Ymd',time());
            //拼接文件名 数据库里存的
            $name = ltrim($temp_path.'/'.$temp_name.'.'.$hz,'.');
            //上传的
            $temp_name2 = $temp_name.'.'.$hz;
           
            //文件上传 
            $request -> file('logo') -> move($temp_path,$temp_name2);

        }
        $link = new Link;

        $link->logo=$name;
        // dd($link->logo);
        $link->linkname=$data['linkname'];
        
        $link->address=$data['address'];
        //str_random 随机字符串
        // $link->remember_token = str_random(50);
      
        if($link->save()){
            return redirect('/admin/link')->with('success','添加成功');
        }else{
            return back()->with('error','添加失败');
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * 展示修改页面.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
        $link = new Link;
        //获取取到的id 的数据
        $data=$link->find($id);
        //分配数据
        return view('/admin/link/edit',['title'=>'修改友情链接','data'=>$data]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //获取用户添加的信息
        $data=$request->except('_token');
   
        if($request->hasFile('logo')){
            //处理文件名称
            $temp_name = md5(time()+rand(1000,9999));
            //获取后缀
            $hz = $request ->file('logo')->getClientOriginalExtension();
            
            //文件路径
            $temp_path = './uploads'.date('Ymd',time());
            //拼接文件名 数据库里存的
            $name = ltrim($temp_path.'/'.$temp_name.'.'.$hz,'.');
            //上传的
            $temp_name2 = $temp_name.'.'.$hz;
           
            //文件上传 
            $request -> file('logo') -> move($temp_path,$temp_name2);

        }
        $link = new Link;
        //从数据库提取
        $link=$link->find($id);
        //修改的数据存到数据库

        $link->linkname=$data['linkname'];

        $link->address=$data['address'];

        $link->logo=$name;
        // dd($link->logo);
        if($link->save()){
            return redirect('/admin/link')->with('success','修改成功');
        }else{
            return back()->with('error','修改失败');
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
        $link = new Link;

        $data=$link::find($id);
        
        if($data->delete()){
            return redirect('/admin/link')->with('success','删除成功');
        }else{
            return back()->with('error','删除失败');
        }
    }
}
